Method and apparatus for shape deformation and placement

ABSTRACT

A method for deforming a plurality of shapes is described wherein each of the shapes comprises a set of parametric curves. The method comprises: providing a parametric surface, and forming a deformed shape for each of the shapes by performing a symbolic composition between the parametric surface and each parametric curve from the set of parametric curves comprising the shape being deformed. The parametric surface is defined by two parameters varying over a parametric domain, such that each of the parametric curves comprising the shapes lies in the parametric domain of the surface.

RELATED PATENT APPLICATION

This application is a National Phase Application ofPCT/IL01/00878International Filing Date 16 Sep. 2001, International Publication No.WO02/25587, International Publication Date 28 Mar. 2002, which claimspriority from U.S. Provisional Patent Application No. 60/233,479 filed19 Sep. 2000.

FIELD OF THE INVENTION

The present invention relates to shape deformation and placement andmore particularly but not exclusively to text deformation and placement,especially to an arbitrary precise orientation specification for layoutof text.

BACKGROUND OF THE INVENTION

A large amount of prior art exists in the area of font design and textlayout for digital typography. Computer aided font design tools havebeen created since the 1960's. Fonts were typically rendered in mediasuch as metal slugs or photomasks for phototypesetters. Now, fonts arefrequently rendered in digital form for use in digital computers anddigital display devices, in order to produce output in a particulartypeface design.

A font is typically defined as a set of printable or displayable textcharacters of specific style and size. A design of a set of fonts iscalled a typeface. A wide range of character shapes exist forrepresenting given alphanumeric characters or typographic symbols suchas numbers, letters, punctuation marks and dingbats. Each such shape isdistinguished by its various design features such as underlyinggeometry, stroke thickness, character height, serifs, joinery, placementand number of contours and ratio of thin-to-thick strokes. Existingdigital font-rendering techniques can be classified into bit map typeand outline type.

In the bit map rendering technique, the glyphs of the fonts aredescribed and manipulated as explicit bit maps. A bit map representationmust be provided for each font point size, as automatic sizing generallycannot be performed for a bit mapped font. Bit map rendering techniquesare a direct way to display fonts. Bit mapping representations, however,consume a sizable amount of computer memory for storing the variousdifferent varieties of typefaces and the many different point sizes foreach typeface. Thus, while bit map rendering techniques are often stillused, other techniques are typically preferred in many circumstances,particularly when it is desirable to minimize the usage of computermemory.

An outline font is a font in which the outlines of each character aregeometrically defined. Each character of such fonts is described byvector geometry and can be scaled with ease. The curves between theendpoints of the vectors are usually specified by using either cubic orlinear Bezier spline curves. Spline curves are smooth piecewisepolynomials that can be used to represent functions over largeintervals. While the most obvious relevance of text characters is forprinting and publications, other applications such as computer animationand computer aided design require text manipulation functions. Splinecurves are controlled by a small set of given control points, which areoften located on the outline or otherwise associated with the outline asin the case of tangent points. Popular outline fonts in use today arethe True Type used by Microsoft Windows, and the Adobe's Type 1 fonts,as described in The True Type font format specification, MicrosoftCorporation, 1990, and in Adobe type 1 font format: multiple masterextensions, Adobe Developer Support, 1992, the contents of which arehereby incorporated by reference. Representing symbol images by outlinesnot only obviates large memory storage but also permits interactive fontediting and text placement.

Many computerized systems employ printing methods that layout textstrings along smooth lines and curves. Such algorithms are found insystems that employ outline fonts: for example the PostScript languageand the Microsoft Office “WordArt” package.

In V. Ostromoukhov and R. D. Hersch, “Artistic screening”, SIGGRAPH '95,(1995), pp. 219-228, the authors describe a two dimensional morphingmethod in which each elementary sub-screen shape is defined by a lettershape toward half-toning. This technique is applied in artisticscreening, which incorporates both full size and microscopic lettersinto the image reproduction process.

Existing text deformation techniques perform the deformations in one oftwo ways. The first approach defines a best-suited rigid motiontransformation for each symbol, as described in pages 171-173, of the“Program 11/Placing Text Along an Arbitrary Path” in the PostScriptLanguage Tutorial and Cookbook. This approach is also one of the methodsused by the “WordArt” package.

The second common technique maps the control points of the Bezier curvescomprising the text symbol. Reed in U.S. Pat. No. 5,715,473 describes amethod and apparatus for providing a set of variations of control pointsof a symbol image, such as a glyph, for display of at least onevariation of the symbol image on a display device of a computercontrolled display system. The method includes providing a set ofcontrol points specifying the outlines of the symbol image and providingvariation data for specifying a set of variations for at least one ofthe control points. The variation data specifies a spatial manipulationof the font control, thereby modifying the outline of the symbol image.

Brock in U.S. Pat. No. 5,949,435 describes a computer-implementedapparatus and method for generating an output digital font from a basefont and one or more font descriptor files. The method involvesretrieving a file containing instructions and data for a generic basefont, retrieving a font descriptor file containing specifications foroperating upon the base font to produce the desired output font, andthen generating the output font by performing operations upon the basefont in accordance with the specifications contained in the fontdescriptor file. Brock's method produces a character program for eachcharacter in the base font.

The control point mapping method is better than rigid motiontransformation, since it is more accurate. When there are enough controlpoints to approximate the curve well by its control polygon, thedeformed letters will look better. Nevertheless, neither methodguarantees that the letters after the deformation will be intersectionfree. For the second method such intersection artifacts do not occurfrequently after control point mapping, but still exist. Reference isnow made to FIG. 1, which demonstrates the creation of an intersectiondue to control point mapping. FIG. 1 a comprises straight-line segments10 and 12, placed relative to base line 14. In FIG. 1 a the undeformedlinear edges of a character do not intersect each other. FIG. 1 b showsthe deformed base line 24, with mapped end control points and edges. Thestraight-line edges, 20 and 22, intersect each other, and the shapeexpands below the base line 24. The lengths of the dashed lines normalto the base line are unmodified.

Another problem with the control point mapping approach is that alllinear segments of the symbol stay linear, with possible displeasingartifacts that affect the continuity of adjacent segments. Reference isnow made to FIG. 2, which shows a simple example of this behavior. FIG.2 a comprises a letter ‘A’ 30, placed along a linear base line 32. Theletter ‘A’ has several linear segments. In FIG. 2 b, only the controlpoints of the Bezier curves comprising the symbol ‘A’ are mapped. Thelinear segments forming the letter ‘A’ 40 remain linear, and do notfollow the shape of the deformed base line 42.

In T. W. Sedergerg and S. R. Parry, “Free-form deformation of solidgeometric models”, SIGGRAPH '86, 20(4): 151-160, 1986, a freeformdeformation technique is presented for solid geometric models. Given amapping M from R³ to R³ and an object O from R³, where R³ denotes athree-dimensional space, O can be warped to follow M as M(O). M providesa precise control over the warping process. The volume deformationtechnique is not directly applicable to font and text design andmanipulation, as these require a two-dimensional deformation.

Contents of the above books and articles are hereby incorporated byreference.

There is a need for a deformation technique for manipulation andplacement of shapes over a two-dimensional or three-dimensional freeformsurface, which provides precise control over all shape segments, andavoids intersections. There is a further need for a technique enablingprecise placement of shapes along a specified base line, so that theshapes smoothly follow the base line.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention there is thusprovided a method for deforming a plurality of shapes, wherein each ofthe shapes comprises a set of parametric curves, the method comprisingproviding a parametric surface having a first and a second parametervarying over a parametric domain, such that each of the parametriccurves comprising the shapes lies in the parametric domain of thesurface, and for each of the shapes, forming a deformed shape accordingto the parametric surface by performing a symbolic composition betweenthe parametric surface and each parametric curve from the set ofparametric curves comprising the shape thereby to generate a set ofdeformed parametric curves.

In a preferred embodiment, the parametric surface comprises a piecewisepolynomial or rational (PPR) surface.

In a further preferred embodiment, some or all of the parametric curvescomprise PPR curves.

In a further preferred embodiment, a PPR surface comprises one of thefollowing surfaces: polynomial spline, Hermite, Lagrange, Bezier, andB-spline.

In a further preferred embodiment, a PPR curve comprises one of thefollowing curves: polynomial spline, Hermite, Lagrange, Bezier, andB-spline.

In a preferred embodiment, at least one of the curves comprises a set ofcontrol points, and wherein the method further comprises forming aparametric representation of the curve from the set of control points.

In a further preferred embodiment, the surface is provided byinterfacing with a user.

Preferably, the method further comprises the steps of calculating theplacement of a plurality of points along each curve from the set ofdeformed parametric curves comprising each of the deformed shapes, andoutputting the points.

Preferably, the method further comprises the step of method displayingthe plurality of deformed shapes. In the preferred embodiment, thepoints are displayed by one of a group of devices comprising: cathoderay tube (CRT), flat panel display, electroluminescent display, gasplasma display, liquid crystal display, laser printer, liquid crystalprinter, LED printer, and inkjet printer.

In a preferred embodiment, at least one of the shapes comprises acharacter.

In another preferred embodiment, the shapes comprise members of anoutline font.

In the preferred embodiment, the plurality of shapes comprises asequence of shapes or a single shape.

In a preferred embodiment, the set of parametric curves comprises asingle parametric curve.

Preferably, at least one of the parametric curves comprises a Beziercurve.

In a preferred embodiment, wherein the parametric surface comprises aPPR surface derived from a PPR base curve.

In a further preferred embodiment, wherein the PPR surface is furtherderived from a PPR shape curve.

In a preferred embodiment, the surface is planar. In a further preferredembodiment, the surface and the base curve are planar.

Preferably, performing the symbolic composition between the PPR surfaceand each of the PPR curves comprises converting the PPR surface into aset of polynomial or rational (PR) patches by subdividing the surface atall its internal knots, converting each of the PPR curves into a set ofPR segments by subdividing the curve at each value corresponding to aninternal knot of the curve and to an internal knot of the surface, andperforming a symbolic composition between each of the PR patches andeach PR segment within the parametric domain of the PR patch.

Preferably, the method further comprises the steps of placing theplurality of shapes along a base curve by providing a base curve, andproviding the surface to be a PPR surface such that, when the secondparameter equals a predefined value, the surface unites with the basecurve.

In a preferred embodiment, the base curve is provided by interfacingwith a user.

Preferably, the method further comprises the step of reparameterizingthe base curve for arc length.

Preferably, providing the surface to be a PPR surface further comprisesproviding the surface such that the surface unites with a predefinedshape curve when the first parameter is at any constant value in theparametric domain of the surface.

Preferably, the method further comprises the step of providing animationeffects by generating successive frames of an image. The image comprisesthe plurality of shapes, and generating a frame comprises providing aparametric surface, and for each of the shapes, forming a deformed shapeaccording to the parametric surface.

Preferably, generating a frame further comprises the step of placing theplurality of shapes along a base curve by providing a PPR base curve,providing the surface to be a PPR surface such that, when the secondparameter equals a predefined value, the surface unites with the basecurve.

Preferably, generating a frame further comprises reparameterizing thebase curve for arc length.

In a preferred embodiment, the surface comprises a three dimensionalparametric surface, and the method comprises the further step of placingthe plurality of shapes on a predefined number of strips on the threedimensional shape by splitting the surface into the number of strips,determining the arc length of each of the strips, subdividing theplurality of shapes into the number of lines, such that each strip onthe surface is associated with a subset of the shapes, wherein the sizeof each subset is determined by the relative arc lengths of the strips,placing each subset of shapes on the associated strip.

Preferably, placing the plurality of shapes on a predefined number ofstrips on the three dimensional shape further comprises the step ofshading at least one of the plurality of shapes.

Preferably, shading one of the shapes comprises controlling the width ofat least one of the curves comprising the shape. In a preferredembodiment, shading one of the shapes comprises assigning a weight tothe shape thereby to control a property thereof. In a further preferredembodiment, the shading is determined by at least one of the followingfactors: light intensity, light direction, viewing direction, directionof the reflected light, ambient light, diffuse light, specular light,silhouette enhancement, and distance.

In a preferred embodiment, the shading comprises color shading.Preferably, the weighting comprises a vector thereby to provide colorshading.

According to a second aspect of the present invention there is thusprovided a shape deformer for deforming a plurality of shapes, whereineach of the shapes comprises a set of parametric curves, the deformercomprising a surface provider for providing a parametric surface havinga first and a second parameter varying over a parametric domain, suchthat each of the parametric curves comprising the shapes lies in theparametric domain of the surface, a shape transformer for forming eachof the shapes into a deformed shape according to the parametric surface,by performing for each of the shapes a symbolic composition between theparametric surface and each parametric curve from the set of parametriccurves comprising the shape, to generate a set of deformed parametriccurves.

In a preferred embodiment, the parametric surface comprises a PPRsurface. In a further preferred embodiment, some or all of theparametric curves comprise PPR curves.

In a preferred embodiment, the shape deformer further comprises aninterface for interfacing with a user thereby to provide the surface.

In a preferred embodiment, at least one of the curves comprises a set ofcontrol points, and the shape deformer further comprises a curveregenerator for forming a parametric representation of the curve fromthe set of control points.

In a preferred embodiment, the shape deformer further comprises acalculator for calculating the placement of a plurality of points alongeach curve from the set of deformed parametric curves comprising each ofthe shapes, and an output device for outputting the points. In anotherpreferred embodiment, the shape deformer further comprises a displaydevice for displaying the deformed plurality of shapes. Preferably, thedisplay device comprises one of a group of devices including but notlimited to: cathode ray tube (CRT), flat panel display,electroluminescent display, gas plasma display, liquid crystal display,laser printer, liquid crystal printer, LED printer, and ink-jet printer.

In a preferred embodiment, at least one of the shapes comprises acharacter.

In another preferred embodiment, the shapes comprise members of anoutline font.

In the preferred embodiment, the plurality of shapes comprises asequence of shapes or a single shape.

In a preferred embodiment, the set of parametric curves comprises asingle parametric curve.

Preferably, at least one of the parametric curves comprises a Beziercurve.

In a preferred embodiment, wherein the parametric surface comprises aPPR surface derived from a PPR base curve.

In a further preferred embodiment, wherein the PPR surface is furtherderived from a PPR shape curve. In a further preferred embodiment, theparametric surface comprises a B-spline surface derived from a B-splinebase curve.

In a preferred embodiment, the surface is planar. In a further preferredembodiment, the surface and the base curve are planar.

Preferably, the shape transformer comprises a surface subdivider forconverting the surface into a set of PR patches by subdividing the PPRsurface at all its internal knots, and a compositioner for performing asymbolic composition between the each of the PPR curves and the set ofBezier surfaces. Preferably, the compositioner further comprises a curvesubdivider for converting each of the PPR curves into a set of PRsegments by subdividing the curve at each value corresponding to aninternal knot of the curve and to an internal knot of the surface, and asub-compositioner for performing a symbolic composition between each ofthe PR patches and the corresponding PR segments.

In a preferred embodiment, the shape deformer further comprises a shapeplacer for placing the plurality of shapes along a base curve, whereinthe shape placer comprises a base curve provider for providing a PPRbase curve, and wherein the surface provider is operable to provide thesurface to be a PPR surface such that, when the second parameter equalsa predefined value, the surface unites with the base curve.

Preferably, the interface is further operable to interface with a userthereby to provide the base curve.

In a preferred embodiment, the shape deformer further comprises a basecurve reparameterizer for reparameterizing the base curve thereby toresize the shapes. Preferably, the base curve reparameterizer isoperable to reparameterize the base curve such that the sizing of theshapes after deformation corresponds to the sizing of the shapes priorto deformation. In a preferred embodiment, wherein the base curvereparameterizer is operable to reparameterize the base curve such thatselected shapes are emphasized.

In a preferred embodiment, the surface provider is operable to providethe surface to be a PPR surface such that the surface unites with apredefined PPR shape curve when the first parameter is at any constantvalue in the parametric domain of the surface.

In a preferred embodiment, the shape deformer further comprises ananimator for generating successive frames an image, the image comprisingthe set of shapes, wherein for each frame the animator is operable toprovide a parametric surface, to form a deformed plurality of shapesaccording to the parametric surface, to calculate the placement of aplurality of points along each of the deformed shapes, and to output thepoints. Preferably, n the animator is further operable to place theplurality of shapes along a PPR base curve by providing the surface tobe a PPR surface such that, when the second parameter equals apredefined value, the surface unites with the base curve. In a preferredembodiment, the animator is further operable to reparameterize the basecurve for arc length.

In a preferred embodiment, the shape deformer further comprises a 3Dplacer for placing the plurality of shapes on a predefined number ofstrips on the three dimensional shape, the 3D placer comprising asurface splitter for splitting the surface into the number of strips, anarc length measurer for determining the arc length of each of thestrips, a subdivider for subdividing the plurality of shapes into thenumber strips, such that each strip on the surface is associated with asubset of the shapes, wherein the size of each subset is determined bythe relative lengths of the strips, and a line placer placing eachsubset of shapes on the associated strip.

Preferably, 3D placer further comprises a shader for shading at leastone of the plurality of shapes.

Preferably, shading one of the shapes comprises controlling the width ofat least one of the curves comprising the shape. In a preferredembodiment, shading one of the shapes comprises assigning a weight tothe shape thereby to control a property thereof. In a further preferredembodiment, the shading is determined by at least one of the followingfactors: light intensity, light direction, viewing direction, directionof the reflected light, ambient light, diffuse light, specular light,silhouette enhancement, and distance.

In a preferred embodiment, the shading comprises color shading.Preferably, the weighting comprises a vector thereby to provide colorshading.

According to a third aspect of the present invention there is thusprovided a computer program product directly loadable into the internalmemory of a digital computing device, comprising software code portionsfor deforming a plurality of shapes, wherein each of the shapescomprises a set of parametric curves, by performing the steps ofproviding a parametric surface having a first and a second parametervarying over a parametric domain, such that each of the parametriccurves comprising the shapes lies in the parametric domain of theparametric surface, for each of the shapes, forming a deformed shapeaccording to the parametric surface by performing a symbolic compositionbetween the parametric surface and each parametric curve from the set ofparametric curves comprising the shape thereby to generate a set ofdeformed parametric curves when the product is run on the computingdevice.

In a preferred embodiment, the product is located on a server fordownload into the digital computing device via a computer network. Inanother preferred embodiment, the product is located on one of a groupof storage media comprising: compact disc (CD), digital versatile disc(DVD), floppy disk, hard disk, and magnetic tape.

In a further preferred embodiment, the computer program productcomprises further software code portions for performing the steps ofcalculating the placement of a plurality of points along each curve fromthe set of deformed parametric curves comprising each of the shapes, andoutputting the points. In a further preferred embodiment, the computerprogram product comprises further software code portions for performingthe step of displaying the plurality of deformed shapes.

In a preferred embodiment, the shapes comprise members of an outlinefont.

In a preferred embodiment, at least one of the parametric curvescomprises a Bezier curve.

In a further preferred embodiment, the parametric surface comprises aB-spline surface derived from a B-spline base curve.

Preferably, the parametric surface comprises a PPR surface and all ofthe parametric curves comprise PPR curves, and wherein performing thesymbolic composition between the surface and each of the PPR curvescomprises the steps of converting the PPR surface into a set of PRpatches by subdividing the surface at all its internal knots, convertingeach of the PPR curves into a set of PR segments by subdividing thecurve at each value corresponding to an internal knot of the curve andto an internal knot of the surface, and performing a symboliccomposition between each of the PR patches and each PR segment withinthe parametric domain of the PR patch.

In a preferred embodiment, the computer program product comprisesfurther software code portions for performing the step of placing theplurality of shapes along a base curve by providing a base curve,providing the surface to be a PPR surface such that, when the secondparameter equals a predefined value, the surface unites with the basecurve.

In a preferred embodiment, the computer program product comprisesfurther software code portions for software code portions for performingthe step of reparameterizing the base curve for arc length.

In a further preferred embodiment, the computer program productcomprises further software code portions for providing animation effectsby generating successive frames of an image, the image comprising theplurality of shapes, wherein generating a frame comprises providing aparametric surface, and for each of the shapes, forming a deformed shapeaccording to the parametric surface.

In another preferred embodiment, the surface comprises a threedimensional parametric surface, and the computer program productcomprises further software code portions for performing the step ofplacing the plurality of shapes on a predefined number of strips on thethree dimensional shape by splitting the surface into the number ofstrips, determining the arc length of each of the strips, subdividingthe plurality of shapes into the number strips, such that each strip onthe surface is associated with a subset of the shapes, wherein the sizeof each subset is determined by the relative arc lengths of the strips,and placing each subset of shapes on the associated strip.

Preferably, the computer program product comprises further software codeportions for performing the step of shading at least one of theplurality of shapes.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the invention and to show how the same maybe carried into effect, reference will now be made, purely by way ofexample, to the accompanying drawings, in which:

FIGS. 1A, 1B demonstrate the creation of an intersection due to controlpoint mapping.

FIGS. 2A, 2B show a shape deformed by control point mapping.

FIG. 3 is a simplified flow chart of an embodiment of a method fordeforming one or more shapes.

FIG. 4 is a simplified flow chart of further steps of the method of FIG.3, for outputting points of a deformed shape or shapes.

FIG. 5 is a simplified flow chart of an embodiment of a method forperforming the symbolic composition between a piecewise polynomial orrational (PPR) surface and the set of PPR curves comprising the shape orshapes being deformed.

FIG. 6 is a simplified flow chart of further steps of the method of FIG.3, for placing a plurality of shapes along a base curve.

FIGS. 7A, 7B show examples of text strings placed along a base curvewhere the character's shape follows a shape curve.

FIG. 8 is a flow chart of a further steps of the method of FIG. 3, forplacing the plurality of shapes along a base curve so that the shape aredeformed in accordance with a shape curve.

FIGS. 9A, 9B show a linear strip containing a text string and a basecurve γ(t).

FIGS. 10A, 10B, 10C show deformed strings containing the text of FIG. 9.

FIGS. 11A, 11B show examples of shape deformation and placement along apredefined base curve.

FIG. 12 is a simplified flow chart of a method for generating a frame.

FIG. 13 is a simplified flow chart of further steps of the method ofFIG. 3, for placing a plurality of shapes on a predefined number ofstrips on a three-dimensional parametric surface.

FIG. 14 illustrates splitting a surface S(u,v).

FIGS. 15A, 15B show examples of shape placement over the surfaces of theUtah teapot using the cosine shading model, Ic.

FIGS. 16A, 16B show examples of a text layout over a spherical surface.

FIGS. 17A, 17B show examples of the application of the silhouette andthe distance shaders.

FIGS. 18A, 18B show the Utah teapot model rendered using a shader thatenhances silhouette areas in the object.

FIG. 19 shows a Utah teapot with the intensities negated with therespect to those in FIG. 15.

FIG. 20 shows a simplified block diagram of a preferred embodiment of ashape deformer for deforming a plurality of shapes.

FIG. 21 shows a simplified block diagram of a further preferredembodiment of shape deformer.

FIG. 22 shows a simplified block diagram of a further preferredembodiment of shape deformer applicable when the parametric surfacecomprises a PPR surface and all of the parametric curves comprise PPRcurves

FIG. 23 shows a simplified block diagram of a preferred embodiment of a3D placer for placing shapes on N strips on a three dimensional shape

FIG. 24 shows a surface with self intersections.

FIGS. 25A, 25b show two representations of a plurality of shapesdeformed over a curve.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The availability of a variety of electronic printing tools and deviceshas changed the role of typography. Nowadays, text manipulationfunctions are an integral part of a large body of applications such asmulti-media publishing, computer animation, and computer aided design(CAD) systems. Computer aided font design tools have been created sincethe 1960, but even today font design systems generally require thesupport of a human artist. Current font design and manipulation systemsfor outline fonts generally recalculate a character's control points, inorder to provide character shape variation and to place a charactersequence along a line. Such techniques do not provide a full and precisespecification of the resultant text layout and form.

Reference is now made to FIG. 3, which is a simplified flow chart of anembodiment of a method for deforming one or more shapes. The preferredembodiment is applicable to parametric curves and parametric surfaces.Each of the shapes is defined by one or more parametric curves. In step50 a parametric surface S(u,v) is provided. The parametric surface hastwo parameters, u and v, which vary over a parametric domain. Thesurface is provided so that each of the curves comprising the shapes tobe deformed lies in the parametric domain of the surface. In step 52,the shapes are deformed according to the provided parametric surface byperforming a symbolic composition between the parametric surface andeach of the parametric curves comprising the shape or shapes.

A further preferred embodiment is for parametric curves and/or surfacescomprising piecewise polynomial or rational (PPR) curves and/orsurfaces, such as polynomial splines, Hermite, Lagrange, Bezier, andB-spline curves and surfaces. PPR surfaces consist of one or morepolynomial or rational (PR) surface patches, joined together at internalknots. Likewise, PPR curves consist of one or more adjoining polynomialor rational (PR) curve segments.

Symbolic composition is a mathematical operation that combines severalfunctions in sequence. Given y=f(t) and t=g(r), symbolic compositionyields y=h(r)=f(g(r)) as the composed function. For example, if y=t² andt=r*2, then y=h(r)=(r*2)²=4*r². Note that no explicit numeric evaluationis conducted during symbolic composition. Thus, a given parametric curveC(t)={c_(x)(t),c_(y)(t)} is deformed by performing:C(t)→S∘C(t)=S(c _(x)(t), c _(y)(t))for c_(x) and c_(y) in the parametric domain of the surface S(u, v).

The method described above applies to deforming a single shape or asequence of shapes. Additionally, a shape may be defined as a singleparametric curve or as a set of curves. The characters and symbols of anoutline font are usually specified as linear or cubic Bezier curves,making the method directly applicable to these symbols.

In some cases, such as Bezier curves, a PPR curve is defined as a set ofcontrol points. A linear Bezier curve is specified by two control pointsand a cubic Bezier curve by four control points. The preferredembodiment further comprises a step of forming a parametricrepresentation of the curve from a set of control points, in order todeform curves defined by control points.

The method of FIG. 3 results in a set of deformed parametric curveswhich have not been explicitly evaluated. In a preferred embodiment, thedeformed curves are output as control points. Some existingapplications, such as PostScript, support the further processing of suchunevaluated curves.

The following preferred embodiment provides extra steps to provideoutput points for applications which require a more explicit descriptionof the deformed shapes. Reference is now made to FIG. 4 which is asimplified flow chart of further steps of the method of FIG. 3, foroutputting points of a deformed shape or shapes. First, the placement ofa plurality of points along each curve from the set of deformedparametric curves comprising the deformed shape is calculated in step60. These points are then output in step 62. The preferred embodimentfurther comprises a step of displaying the deformed shapes. The displaydevice comprises one of a group of devices, including: a cathode raytube (CRT), a flat panel display, a electroluminescent display, a gasplasma display, a liquid crystal display, a laser printer, a liquidcrystal printer, an LED printer, and an ink-jet printer.

A symbolic composition is computed over PR functions. A PPR surface maycontain more than one PR patch, and a PPR curve may contain more thanone PR segment. Performing a symbolic composition between PPR curves andsurfaces generally requires subdividing the curve and/or surface intoits PR components, and performing separate symbolic compositions betweenthe PR components. For example, B-spline freeform curves are piecewisepolynomials, whereas Bezier curves are polynomials. Hence, a singleB-spline curve or surface consists of one or more Bezier curves and/orsurfaces. In order to perform a symbolic composition and deform aB-spline curve, the B-Spline freeform must be subdivided into itspolynomial pieces. A B-spline surface that is derived from a B-splinebase curve may be converted into a set of Bezier surfaces by subdividingthe B-spline surface at all its internal knots. Further, by subdividingall the Bezier curves that prescribe the geometry of a character at thecorresponding knot values of the surfaces, the deformation process isperformed as a symbolic composition between the groups of Bezier curvesand the corresponding subdivided Bezier patches.

In the preferred embodiment where the parametric surface comprises a PPRsurfaces and the shapes are defined by a set of PPR curves, the symboliccomposition between the PPR surface and the set of PPR curves isperformable by subdividing the curves and surfaces into PR components.All the PPR curves of the letters are in the parametric space of S(u, v)and are to be subdivided at the certain interior knot value u₀ (or v₀)of S(u, v). Assume u_(min) and u_(max) are the minimal and the maximalvalues of the u parameter in the parametric domain of S(u,v), whilev_(min) and v_(max) are the bounds of the parameter v. Subdividing acurve at the coordinate u₀∈[u_(min),u_(max)] is equivalent to solvingc_(u)(t)=u₀ for all t that satisfy the equation. The solution set maythen be found analytically, by solving either a linear or a cubicequation and considering only real roots in the range [u_(min),u_(max)].Since outline fonts are often defined as sets of linear and cubic Beziercurves, deformation of outline font characters may generally beperformed analytically. The above technique is described in G. Elber,“Symbolic and numeric computation in curve interrogation”. ComputerGraphics forum, 14(1): 25-34, March 1995, contents of which are herebyincorporated by reference.

Reference is now made to FIG. 5, which shows a simplified flow chart ofa method for performing the symbolic composition between a PPR surfaceand the set of PPR curves comprising the shape or shapes being deformed.The PPR surface need not be planar. In the case that the shapes beingdeformed are located on a flat surface such as a printed page, thesurface is planar. In step 80 the PPR surface is converted into a set ofPR surfaces, by subdividing the PPR surface at all its internal knots.In step 82, the each of the PPR curves comprising the shapes isconverted into a set of PR segments by subdividing each PPR curve ateach value corresponding to an internal knot of the curve and also ateach value corresponding to an internal knot of the surface. In the casewhere a PPR curve is a Bezier curve, the curve itself comprises a singlesegment having no knots. Each Bezier curve must therefore be subdividedonly at the internal knots of the surface. In step 84, a symboliccomposition is performed between each of the PR surface patches and eachof the PR curve segments within the parametric domain of the PR patch.

Reference is now made to FIG. 6, which is a simplified flow chart offurther steps of the method of FIG. 3. Performing these further stepsprovides the ability to place the plurality of shapes along a basecurve. In step 90, a base curve γ(t) is provided:γ:[γ_(min),γ_(max)]→

²; γ(t)={x(t),y(t)}In step 92, the parametric surface used for deforming the plurality ofshapes is provided to be a parametric surface such that, when v equals apredefined value v₀, the surface unites with provided base curve,yielding:S:[u _(min) ,u _(max) ]×[v _(min) ,v _(max)]→

² ; S(u, v)={x(u, v), y(u, v)}; S(u, v ₀)=γ(u)Using the surface provided in step 92 to deform the shapes causes theshapes to be placed along the base curve γ(t). The method of FIG. 6prevents self intersections, as shown below.

The above embodiment is extendable to other dimensions. The dimension ofthe range of the curve must fit the dimension of the domain of theembedding entity, and hence must be a mapping to R² for the case of adomain of a surface S(u,v). The range of surface S(u, v) may be of anarbitrary dimension, R¹ to R^(n), and the result of the composition canbe in an arbitrary dimension n, where n=2 is a planar result and n=3 isa three dimensional result. Different dimensions, other than 2 and 3, inthe range and domain of the composed entities may be obtained bycomposing other dimensional entities such as a curve embedded in a curve(a reparametrization), or of curves and surfaces embedded in trivariatevolumes f(u, v, w) that serve as mapping and warping functions. However,the meaning of these dimensions is application dependent.

In a preferred embodiment, surface S(u,v) is defined by a shape curveδ(v) as well as by base curve γ(u), in order to define the shaping aswell as the placement of the deformed shapes. The surface follows theshape curve when parameter v is at any constant value in the parametricdomain of S(u,v). For example, define:S(u, v)=γ(u)+δ(v)where δ(v) =S(umin,v) is a vertically oriented parametric curve, whileγ(u)=S(u,vmin) is the base line curve as before. After shapedeformation, the base curve of the given text follows γ(u), but thecharacter's shape follows δ(v). FIGS. 7A, 7B show two examples of textstrings that were shaped using this method.

An additional preferred embodiment defines surface S(u,v) as ruledsurface between the base curve γ(u,v_(min)) and an upper boundary curveγ(u,v_(max)):S(u,v)=S(u,0)(1−v)+S(u,1)v.The upper boundary curve can be provided as an offset of the given basecurve, or as a vertical offset of the base curve.

Reference is now made to FIG. 8 which is a flow chart of further stepsof the method of FIG. 3, for placing the plurality of shapes along basecurve γ(t) so that the shape are deformed in accordance with shape curveδ(t). In step 94, base curve γ(t) is provided. In step 96, shape curveδ(t) is provided. Finally, in step 98, a surface is provided based onbase curve γ(t) and shape curve δ(t) as discussed above.

The method described above provides great flexibility for textdeformation and placement, while ensuring precise control of theresulting text. Reference is now made to FIG. 9 a, which shows a linearstrip containing a text string, and to FIG. 9 b which shows a base curveγ(t). The text is surrounded by a rectangular bounding box. Variouschoices of surface S(u, v) yield different deformation effects. Thefollowing examples illustrate some of the achievable effects.

Reference is now made to FIG. 10, which shows several deformed stringscontaining the text of FIG. 8 a. FIG. 10 a shows the layout of the textstring of FIG. 8 after placement along base curve γ(t) according to themethod of the preferred embodiment. The text string of FIG. 10 a followsthe curvature of base curve γ(t), however the relative sizing of theindividual characters has undergone some distortion due to the varyingarc length along the base curve. In a preferred embodiment the mappingof the shapes along the base curve is redistributed by performing basecurve reparameterization, as described in G. Elber, “Symbolic andnumeric computation in curve interrogation”, Computer Graphics forum,14(1), 25-34, March 1995, contents of which are hereby incorporated byreference. Base curve reparameterization enables sizing the deformedshapes according to various criteria, for example to recover therelative sizing of the shapes prior to deformation as shown in FIG. 10b, or to emphasize selected shapes as shown in FIG. 10 c.

A second example, which is of shape deformation and placement along apredefined base curve, is shown in FIG. 11. An undeformed set of shapesis shown in FIG. 11 a. FIG. 11 b shows the resulting shapes after beinglaid out over a highly curved base curve according to the presentembodiment. The resulting shapes follow the base curve smoothly.

The shape deformation method described above may be used to createanimation effects. Animation is the time dependent presentation ofshapes. Animation simulates movement by displaying a series of pictures,or frames. Each frame is a single image in a sequence of images. Whereasvideo takes continuous motion and breaks it up into discrete frames,animation starts with independent pictures and puts them together toform the illusion of continuous motion. Examples of animation includeblinking, dissolving, and swiping, that is, the brightening ofsuccessive text portions at a specified rate.

Given an image comprising a shape or a plurality of shapes, where eachshape is defined by one or more parametric curves, an animated effect iscreated by generating successive frames of the image by deforming theimage onto a succession of parametric surfaces.

Reference is now made to FIG. 12, which shows a simplified flow chart ofa method for generating a frame. In step 100 a parametric surface isprovided. Each of the shapes is then deformed according to theparametric surface in step 102. Different sequences of parametricsurfaces create different animation effects including, but not limitedto, stretching and/or shrinking the shapes, ripple effects, and morphingbetween given shapes. Additional preferred embodiments of the animationmethod include the steps of shape placement and/or reparameterization byarc length as described above. Another preferred embodiment includes thefurther steps of calculating points along the deformed shapes, andoutputting the calculated points. In a preferred embodiment the basecurve is metamorphed, and the plurality of shapes is placed along thecurves of the metamorphosis sequence. Metamorphing a shape comprisesgenerating a sequence of base curves, from which a sequence of surfacesis derived. The shape or shapes are then deformed according to thederived sequence of surfaces to create an animated effect.

Reference is now made to FIG. 13 which is a simplified flow chart offurther steps of the method of FIG. 3, for placing a plurality of shapeson a predefined number of strips, N, on a parametric surface. In apreferred embodiment the parametric surface is three-dimensional.Surface S(u,v) is first split into N strips in step 110. In thepreferred embodiment, in order to provide an even distribution of theshapes, the surface is parameterized of to make all the strips appear ofsimilar height. Typically, the parameterization is not uniform along S(uv). Assume u_(min) and u_(max) are the minimal and the maximal values ofthe u parameter in the parametric domain of S(u,v), while v_(min) andv_(max) are the bounds of the parameter v. The velocity vector field

$\frac{\mathbb{d}\;}{\mathbb{d}v}{S\left( {u,v} \right)}$is calculated during surface subdivision. The velocity vector is used tosplit surface S(u,v) into strips, with each strip serving as a line oftext. Since the parametrization might not be constant, uniformsubdivision in the parametric space might yield lines of text that areunequal in height. By deriving

${\frac{\mathbb{d}\;}{\mathbb{d}v}{S\left( {u,v} \right)}},$it is possible to find a subdivision in the parametric space that yieldsequal height strips in Euclidean space. In the preferred embodiment thevelocity vector is calculated at

$\overset{\_}{u} = {\frac{u_{\min} + u_{\max}}{2}\mspace{14mu}{for}\mspace{14mu}{all}\mspace{14mu}{v.}}$

Reference is now made to FIG. 14 which illustrates splitting a surfaceS(u,v). FIG. 14 illustrates a surface on which the procedure of FIG. 13is carried out. For a given number of lines of text, N, the value of theparameter v_(i) for the bottom cut of the i-th strip is approximated sothat the following holds:

${\frac{i}{N}{\int_{v_{\min}}^{v_{\max}}{{{\frac{\mathbb{d}\;}{\mathbb{d}v}{S\left( {\overset{\_}{u},v} \right)}}}{\mathbb{d}v}}}} = {\int_{v_{\min}}^{v_{i}}{{{\frac{\mathbb{d}\;}{\mathbb{d}v}{S\left( {\overset{\_}{u},v} \right)}}}{\mathbb{d}v}}}$With the assumption that the value v_(i) in the above equation does notchange much for different values of the u parameter, a uniformdistribution of the N strips is derived. In the preferred embodiment theactual computation of

${v_{i}\overset{\_}{u}} = \frac{u_{\min} + u_{\max}}{2}$is conducted by performing a binary search over v and a piecewise linearapproximation of the arc-length function of

$\int{{{\frac{\mathbb{d}\;}{\mathbb{d}v}{S\left( {\overset{\_}{u},v} \right)}}}{{\mathbb{d}v}.}}$

As shown in FIG. 13, the arc length of each of the strips on surfaceS(u,v) is determined in step 112. The arc lengths are used in step 114to subdivide the plurality of shapes into N subsets, such that eachstrip is associated with a subset of the shapes. The goal is to have alength of text that is proportional to the arc length of the associatedstrip. In the preferred embodiment the shape subdivision process isconducted by computing the length of the entire text in relations to theaccumulated arc lengths of the base curves of the strips S_(j)(u,v_(j)). The text is then broken into the N lines, each of which has alength that is proportional to the arc length of the correspondingstrip. The input text is divided into lines of text in such away thatthe following relation holds:

$\frac{\int_{u_{\min}}^{u_{\max}}{{{\frac{\mathbb{d}\;}{\mathbb{d}u}{S_{i}\left( {u,v_{j}} \right)}}}{\mathbb{d}u}}}{\sum\limits_{j = 1}^{N}{\int_{u_{\min}}^{u_{\max}}{{{\frac{\mathbb{d}\;}{\mathbb{d}u}{S_{i}\left( {u,v_{j}} \right)}}}{\mathbb{d}u}}}} = \frac{L_{i}}{\sum\limits_{j = 1}^{N}L_{j}}$where Lj is the arc-length of the text in strip j. Finally, each subsetof shapes is placed on the associated strip in step 116.

The preferred embodiment comprises the further step of adding shading toat least one of the plurality of shapes, in order to take into accountthe local shading information of the input surface. In traditionalphoto-realistic rendering techniques, the pixel is the smallest pictureelement considered. The pixel is assigned a color value that correspondsto the intensity level computed for the pixel. In the preferredembodiment the traditional rendering process is emulated by defining aweight for each shape. The weight controls various shape parameters,such as the width of a shape outline, or the width or area of a filledsymbol, in proportion to the derived intensity level of the shading ofthe surface in the local neighborhood. In the preferred embodiment thewidth of the shape outline follows the cosine shader:I _(c)(u,v)=ω(I _(a) +I _(d) ·

N(u,v),L

+I _(s) ·

R(u,v),V

^(a));where:

${{R\left( {u,v} \right)} = \frac{L - {\overset{\sim}{N}\left( {u,v} \right)}}{{L - {\overset{\sim}{N}\left( {u,v} \right)}}}};$Ñ(u,v)=2N(u,v)

N(u,v),L

and (u, v) are the coordinates of the center of the bounding box of thesymbol in the parametric domain of S(u, v), ω is some bias, L is thedirection of the light, V stands for the viewing direction, R is thedirection of the reflected light, and Ia, Id and Is are the coefficientsfor the ambient, diffuse and specular components of the illumination.Alpha, α, is a parameter that controls the rate of decay of the specularreflection. The higher alpha is, the faster the decay of the lightintensity, as the reflection direction R deviates from the viewdirection V.

A classic model in the computer graphics field is the Utah teapot. InFIG. 15, two examples of shape placement over the surfaces of the Utahteapot using the cosine shading model, I_(c), are shown. In FIG. 15 a,the maximal width of the outline of the symbol is used if the symbol hasthe highest intensity level. This is an effective technique when blackcolor is used for the shapes and white background for non-illuminatedareas. Another option is to use the negative image, having the darkerareas represent the background and the bright ones the illuminated partsof the picture. An additional option comprises expressing the negativecolors without altering the background by using the minimal outlinewidth for the illuminated symbols, thus having the symbols with thesmaller intensity level producing the outline with the maximal width asshown in FIG. 15 b.

Other shaders can be employed to provide different effects. Two examplesof such shaders are a silhouette enhancement shader and a distancedependent shader. In the preferred embodiment the intensity level iscomputed for these two shaders as:I _(s)(u,v)=ω·(1.0−

V,N(u,v)

^(γ));

${I_{d}\left( {u,v} \right)} = {\omega\frac{I_{c}\left( {u,v} \right)}{{{L - {S\left( {u,v} \right)}}}^{\gamma}}}$where I_(s)(u, v) is the shader that enhances the silhouettes areas andI_(d)(u, v) is a distance dependent shader, ω is a bias constant, and γis a decay factor. I_(c)(u,v) is defined as given above. Silhouetterendering emphasizes the silhouette areas of the surface, while distancedependent rendering is similar to traditional rendering, but assignslarger intensity to the surface regions that are closer to the pointlight source.

Reference is now made to FIG. 16 which shows a simple example of a textlayout over a spherical surface that emphasizes the properties of theshading model. FIG. 16 a shows the result obtained by silhouetterendering, I_(s), whereas FIG. 16 b uses traditional cosine shading,I_(c).

Reference is now made to FIG. 17 which shows examples of the applicationof the silhouette and the distance shaders. The silhouette shader hasbeen applied to the pawn surface in FIG. 17 a, while the distancedependent shader was used for a glass surface in FIG. 17 b.

FIG. 18 shows the Utah teapot model rendered using a shader thatenhances silhouette areas in the object. FIG. 18 b shows a magnifiedview of the square region of the teapot in FIG. 18 a.

It is often easier for the human eye to comprehend the picture whendarker colors are used for non-illuminated areas. FIG. 19 shows a Utahteapot having the identical geometry as the teapot of FIG. 15, with theintensities negated with the respect to those in FIG. 15.

In a further preferred embodiment color shading is provided. In thecolor shading embodiment, the different I components are vectors,thereby supporting a color shader.

Reference is now made to FIG. 20, which shows a simplified block diagramof a preferred embodiment of a shape deformer 120 for deforming aplurality of shapes, wherein each of the shapes comprises a set ofparametric curves. Shape deformer 120 comprises surface provider 122used to provide a parametric surface, and shape transformer 124 used toform each of the shapes into a deformed shape. As in the methodsdescribed above, the parametric surface has two parameters varying overa parametric domain, so that each of the parametric curves comprisingthe shapes lies in the parametric domain of the surface. In a preferredembodiment the parametric shape comprises a PPR shape. In anotherpreferred embodiment, one or more of the parametric curves comprises aPPR curve. Shape transformer 124 forms each shape into a deformed shape,by performing symbolic composition between each of the parametric curvesforming the shape and the parametric surface provided by surfaceprovider 122. The output of the shape deformer 120 is a set of deformedparametric curves that specify a plurality of deformed shapes. In apreferred embodiment these curves are output as control points.

Reference is now made to FIG. 21, which shows a simplified block diagramof a further preferred embodiment of shape deformer 120. Parts that arethe same as those in previous figures are given the same referencenumerals and are not described again except as necessary for anunderstanding of the present embodiment. In the embodiment of FIG. 21shape deformer 120 further comprises calculator 126 and output device128. Calculator 126 calculates the placement of points along each curvecomprising the deformed shapes. Output device 128 outputs the calculatedpoints. In a preferred embodiment shape deformer 120 further comprises adisplay device that displays the deformed shapes. Possible displaydevices include, but are not limited to: cathode ray tube (CRT), flatpanel display, electroluminescent display, gas plasma display, liquidcrystal display, laser printer, liquid crystal printer, LED printer, andink-jet printer.

In a preferred embodiment where one or more of the parametric curvesforming the shapes is specified as a set of control points, the shapedeformer further comprises a curve regenerator. The curve regeneratorforms a parametric representation of the curve from the set of controlpoints. The curve can then be processed by the shape transformer.

Reference is now made to FIG. 22, which shows a simplified block diagramof a further preferred embodiment of shape deformer 120 that isapplicable when the parametric surface comprises a PPR surface and theparametric curves comprise PPR curves, further comprises a surfacesubdivider 130 and a compositioner 132. Surface subdivider 130 convertsthe PPR surface into a set of PR surfaces by subdividing the PPR surfaceat all its internal knots. Compositioner 132 then performs a symboliccomposition between each of the PPR curves and the set of PR surfacepatches. The compositioner 132 comprises curve subdivider 134 andsub-compositioner 136. Curve subdivider 134 converts the PPR curves intoa set of PR segments by subdividing the curve at each valuecorresponding to an internal knot of the curve and also at each valuecorresponding to an internal knot of the surface, whilesub-compositioner 136 performs a symbolic composition between each ofthe PR surface patches and the corresponding PR segments.

In a preferred embodiment, shape deformer 120 further comprises a shapeplacer operable to place the shapes along a defined base curve γ(u). Theshape placer comprises a base curve provider used to provide a basecurve. The base curve is input to surface provider 122, which thenprovides the parametric surface to be a PPR surface having base curveγ(u) as one of the surface's boundaries, generally as the bottom edge.

In a preferred embodiment shape deformer 120 further comprises a basecurve reparameterizer. The base curve reparameterizer reparameterizesthe base curve, thus providing the capability to resize the shapes.

In a preferred embodiment, shape deformer 120 provides animationcapabilities by further comprising an animator. The animator generatessuccessive frames of an image, where the image comprises a set ofshapes. The animator generates each frame by providing a parametricsurface, and forming a deformed image by performing a symboliccomposition between the image and the parametric surface.

Reference is now made to FIG. 23, which shows a simplified block diagramof a preferred embodiment of a 3D placer 140 operable to place shapes onN strips on a parametric surface, preferably a three-dimensionalsurface. The 3D placer 140 comprises surface divider 142 operable tosplit the surface into N strips, an arc length measurer 144 operable todetermine the arc length of each of the strips, a subdivider 146operable to subdivide the shapes into N subsets, and a line placer 148operable to place each subset of shapes on the surface. Subdivider 146subdivides the shapes into subsets so that the size of each subset isdetermined by the relative arc lengths of the strips, and associateseach strip on the surface with a subset of the shapes. Line placer 148then places each subset of shapes on the associated strip using thetechnique described above. The preferred embodiment further comprises ashader 150 that adds a shading effect in order to incorporateinformation about lighting conditions.

An additional preferred embodiment comprises a computer program productdirectly loadable into the internal memory of a digital computingdevice. The computer program product comprises software code portionsfor deforming a plurality of shapes in the manner described above. Thecomputer program product is providable in a variety of media, including:compact disc (CD), digital versatile disc (DVD), floppy disk, hard disk,magnetic tape, or by download from a server via a computer network.

It can be shown that the deformation technique of the preferredembodiments prevents self intersections when the base curve is eithermonotone with respect to some line or is closed. Let γ(t) be a C¹continuous curve, and assume γ(t) is either monotone with respect tosome line or is closed. Then,

-   -   Proposition Let γ(t) be the offset curve of γ(t). Suppose that        the curves γ(t) and γ(t) are simple and mutually intersection        free. Then, the ruled surface S(u, v)=γ(u)(1−v)+ γ(u)v is self        intersection free as well.        The proof of this proposition may be found in T. Samoilov and G.        Elber. “Self-intersection elimination in metamorphosis of        two-dimensional curves”, The Visual Computer, 14(8/9): 415-428,        1998, since the tangent vectors of both curves γ(u) and γ(u) are        collinear throughout the parametric domain of u. Thus, if the        offset curve of γ(u) is simple and does not intersect γ(u), the        resulting text would have no fold-overs.

While rare, the constraint for γ(t) to be either closed or monotone issufficient but unnecessary. This constraint prevents the singular casefor which the end points of γ(t) and the end points of γ(t) areinterleaved, resulting in two simple curves that do not intersectwhereas the ruled surface between the curves does self intersect. Theprevention of self intersections in the isoparametric curve S(u, 1)could also be materialized by providing S(u, 1) to be a translatedversion of the base curve γ(t). This solution could yield selfintersections in S(u,v), as demonstrated in FIG. 24, and hence, topossible intersections in the composed text.

Some of the above embodiments use precise composition between the PPRcurves, such as linear or cubic Bezier curves, and arbitrary PPRsurfaces, such as Bezier surfaces. Thus, the order of the resultingcurves might be higher than 3 (cubic). The PostScript language, forexample, supports either linear or cubic Bezier curves. The geometry ofthe composed letters can be approximated by a set of cubic Bezier curvesto an arbitrary precision, as shown in G. Elber “Free form surfaceanalysis using a hybrid of symbolic and numeric computation”, Ph.D.dissertation, 1992, in order to further use the composed letters in thePostScript representation.

FIG. 25 shows two representations of the same string placed over thesame curve. The surface S(u, v) is cubic by linear resulting in composedcurve of degree 12 for cubic Bezier and of degree 4 for linear Beziercurve segments. The curves in FIG. 25 a are approximated by piecewiselinear segments, whereas the same curves in FIG. 25 b are represented bycubic Bezier curves. The number of linear segments for each high ordercurve is equal to 7 in this example. The maximal number of cubic Beziersegments approximating a higher order curve that was received as aresult of the composition of the outline font representation with thesurface patch is two.

The method and apparatus described above provide a precise technique forlayout of shapes along free-form parametric curves and surfaces. Inorder to achieve a smooth or aesthetically pleasing looking textdeformation, the geometric representation of the shapes is symbolicallycomposed with a parametric surface along a given base curve. Additionalinformation about the shape may be provided by shading effects. Theshape deformation technique of the present embodiment is directlyapplicable to outline font shaping and placement for use in digitaltypography.

It is appreciated that certain features of the invention, which are, forclarity, described in the context of separate embodiments, may also beprovided in combination in a single embodiment. Conversely, variousfeatures of the invention which are, for brevity, described in thecontext of a single embodiment, may also be provided separately or inany suitable subcombination.

It will be appreciated by persons skilled in the art that the presentinvention is not limited to what has been particularly shown anddescribed hereinabove. Rather the scope of the present invention isdefined by the appended claims and includes both combinations andsubcombinations of the various features described hereinabove as well asvariations and modifications thereof which would occur to personsskilled in the art upon reading the foregoing description.

1. A computer implemented method for deforming a plurality of shapes,each said shape being a character in a font set having a font style,said deforming preserving said font style, wherein each of said shapescomprises a set of parametric curves, said method comprising: providinga parametric surface having a first and a second parameter varying overa parametric domain, such that each said parametric curve lies in theparametric domain of said surface; for each of said shapes, forming adeformed character shape according to said parametric surface byperforming a symbolic composition between said parametric surface andeach said parametric curve thereby to generate a set of deformedparametric curves, each one of the plurality of shapes being a shape ofa character; and for each of said shapes, outputting said deformedcharacter shape while preserving said font style.
 2. A method fordeforming a plurality of shapes according to claim 1, wherein saidparametric surface comprises a piecewise polynomial or rational (PPR)surface.
 3. A method for deforming a plurality of shapes according toclaim 2, wherein all of said parametric curves comprise PPR curves.
 4. Amethod for deforming a plurality of shapes according to claim 3, whereinperforming said symbolic composition between said PPR surface and eachof said PPR curves comprises: converting said PPR surface into a set ofpolynomial or rational (PR) patches by subdividing said surface at allits internal knots; converting each of said PPR curves into a set of PRsegments by subdividing said curve at each value corresponding to aninternal knot of the curve and also at each value corresponding to aninternal knot of said surface; and, performing a symbolic compositionbetween each of said PR patches and each PR segment within theparametric domain of said PR patch.
 5. A method for deforming aplurality of shapes according to claim 2, wherein a PPR surfacecomprises one of the following surfaces: polynomial spline, Hermite,Lagrange, Bezier, and B-spline.
 6. A method for deforming a plurality ofshapes according to claim 2, further comprising placing said pluralityof shapes along a base curve by: providing a base curve; and, providingsaid surface to be a PPR surface such that, when said second parameterequals a predefined value, said surface unites with said base curve. 7.A method for deforming a plurality of shapes according to claim 6,wherein said base curve is provided by interfacing with a user.
 8. Amethod for deforming a plurality of shapes according to claim 6, furthercomprising reparameterizing said base curve for arc length.
 9. A methodfor deforming a plurality of shapes according to claim 6, whereinproviding said surface to be a PPR surface further comprises providingsaid surface such that said surface unites with a predefined shape curvewhen said first parameter is at any constant value in the parametricdomain of said surface.
 10. A method for deforming a plurality of shapesaccording to claim 1, wherein at least one of said parametric curvescomprises a PPR curve.
 11. A method for deforming a plurality of shapesaccording to claim 10, wherein a PPR curve comprises one of thefollowing curves: polynomial spline, Hermite, Lagrange, Bezier, andB-spline.
 12. A method for deforming a plurality of shapes according toclaim 1, wherein all of said parametric curves comprise PPR curves. 13.A method for deforming a plurality of shapes according to claim 1,wherein at least one of said parametric curves comprises a set ofcontrol points, and wherein said method further comprises forming aparametric representation of said parametric curve from said set ofcontrol points.
 14. A method for deforming a plurality of shapesaccording to claim 1, wherein said surface is provided by interfacingwith a user.
 15. A method for deforming a plurality of shapes accordingto claim 1, further comprising: calculating the placement of a pluralityof points along each curve from the set of deformed parametric curvescomprising each said deformed character shape; and, outputting saidpoints.
 16. A method for deforming a plurality of shapes according toclaim 15, further comprising displaying plurality of deformed charactershapes.
 17. A method for deforming a plurality of shapes according toclaim 16, wherein said points are displayed by one of a group of devicescomprising: cathode ray tube (CRT), flat panel display,electroluminescent display, gas plasma display, liquid crystal display,laser printer, liquid crystal printer, LED printer, and ink jet printer.18. A method for deforming a plurality of shapes according to claim 1,wherein said shapes comprise members of an outline font.
 19. A methodfor deforming a plurality of shapes according to claim 1, wherein saidplurality of shapes comprises a sequence of shapes.
 20. A method fordeforming a plurality of shapes according to claim 1, wherein saidplurality of shapes comprises a single shape.
 21. A method for deforminga plurality of shapes according to claim 1, wherein said set ofparametric curves comprises a single parametric curve.
 22. A method fordeforming a plurality of shapes according to claim 1, wherein at leastone of said parametric curves comprises a Bezier curve.
 23. A method fordeforming a plurality of shapes according to claim 1, wherein saidparametric surface comprises a PPR surface derived from a PPR basecurve.
 24. A method for deforming a plurality of shapes according toclaim 23, wherein said PPR surface is further derived from a PPR shapecurve.
 25. A method for deforming a plurality of shapes according toclaim 23, wherein said surface and said base curve are planar.
 26. Amethod for deforming a plurality of shapes according to claim 1, whereinsaid surface is planar.
 27. A method for deforming a plurality of shapesaccording to claim 1, further comprising providing animation effects bygenerating successive frames of an image, said image comprising saidplurality of shapes, wherein generating a frame comprises: providing aparametric surface; and, for each of said shapes, forming a deformedshape according to said parametric surface.
 28. A method for deforming aplurality of shapes according to claim 27, wherein generating a framefurther comprises placing said plurality of shapes along a base curveby: providing a PPR base curve; and, providing said surface to be a PPRsurface such that, when said second parameter equals a predefined value,said surface unites with said base curve.
 29. A method for deforming aplurality of shapes according to claim 28, wherein generating a framefurther comprises reparameterizing said base curve for arc length.
 30. Amethod for deforming a plurality of shapes according to claim 1, whereinsaid surface comprises a three dimensional parametric surface, saidmethod further comprising placing said plurality of shapes on apredefined number of strips on said three dimensional surface by:splitting said surface into said number of strips; determining the arclength of each of said strips; subdividing said plurality of shapes intosaid number of strips, such that each strip on said surface isassociated with a subset of said shapes, wherein the size of each subsetis determined by the relative arc lengths of said strips; and, placingeach subset of shapes on said associated strip.
 31. A method fordeforming a plurality of shapes according to claim 30, furthercomprising shading at least one of said plurality of shapes.
 32. Amethod for deforming a plurality of shapes according to claim 31,wherein shading one of said shapes comprises controlling the width of atleast one of said curves comprising said shape.
 33. A method fordeforming a plurality of shapes according to claim 31, wherein shadingone of said shapes comprises assigning a weight to said shape thereby tocontrol a property thereof.
 34. A method for deforming a plurality ofshapes according to claim 33, wherein said weighting comprises a vectorthereby to provide color shading.
 35. A method for deforming a pluralityof shapes according to claim 31, wherein said shading is determined byat least one of the following factors: light intensity, light direction,viewing direction, direction of the reflected light, ambient light,diffuse light, specular light, silhouette enhancement, and distance. 36.A method for deforming a plurality of shapes according to claim 31,wherein said shading comprises color shading.
 37. A computer-based shapedeformer for deforming a plurality of shapes, each said shape being acharacter in a font set having a font style, said deforming preservingsaid font style, wherein each of said shapes comprises a set ofparametric curves, said deformer comprising: a surface provider forproviding a parametric surface having a first and a second parametervarying over a parametric domain, such that each of said parametriccurves lies in the parametric domain of said surface; a symboliccomposition shape transformer for forming each of said shapes into adeformed character shape according to said parametric surface, byperforming for each of said shapes a symbolic composition between saidparametric surface and each said parametric curve, to generate a set ofdeformed parametric curves, each one of the plurality of shapes being ashape of a character; and an output interface for outputting saiddeformed character shape while preserving said font style.
 38. Thecomputer-based shape deformer according to claim 37, wherein saidparametric surface comprises a piecewise polynomial or rational (PPR)surface.
 39. The computer-based shape deformer according to claim 38,wherein all of said parametric curves comprise PPR curves.
 40. Thecomputer-based shape deformer according to claim 39, wherein said shapetransformer comprises a surface subdivider for converting said surfaceinto a set of polynomial or rational (PR) patches by subdividing saidPPR surface at all its internal knots, a curve subdivider for convertingeach of said PPR curves into a set of PR segments by subdividing saidcurve at each value corresponding to an internal knot of the curve andalso at each value corresponding to an internal knot of said surface,and a sub-compositioner for performing a symbolic composition betweeneach of said PR patches and the corresponding PR segments.
 41. Thecomputer-based shape deformer according to claim 37, wherein at leastone of said parametric curves comprises a PPR curve.
 42. Thecomputer-based shape deformer according to claim 37, wherein all of saidparametric curves comprise PPR curves.
 43. The computer-based shapedeformer according to claim 37, further comprising an interface forinterfacing with a user thereby to provide said surface.
 44. Thecomputer-based shape deformer according to claim 37, wherein at leastone of said parametric curves comprises a set of control points, andwherein said shape deformer further comprises a curve regenerator forforming a parametric representation of said parametric curve from saidset of control points.
 45. The computer-based shape deformer accordingto claim 37, further comprising a calculator for calculating theplacement of a plurality of points along each curve from the set ofdeformed parametric curves comprising each said deformed charactershape, and an output device for outputting said points.
 46. Thecomputer-based shape deformer according to claim 45, further comprisinga display device for displaying plurality of deformed character shapes.47. The computer-based shape deformer according to claim 46, whereinsaid display device is one of a group of devices comprising: cathode raytube (CRT), flat panel display, electroluminescent display, gas plasmadisplay, liquid crystal display, laser printer, liquid crystal printer,LED printer, and ink jet printer.
 48. The computer-based shape deformeraccording to claim 45, further comprising an animator for generatingsuccessive frames form an image, said image comprising said plurality ofshapes, wherein for each frame said animator provides a parametricsurface, to form a deformed plurality of shapes according to saidparametric surface, to calculate the placement of a plurality of pointsalong each of said deformed shapes, and to output said points.
 49. Thecomputer-based shape deformer according to claim 48, wherein saidanimator places said plurality of shapes along a PPR base curve byproviding said surface to be a PPR surface such that, when said secondparameter equals a predefined value, said surface unites with said basecurve.
 50. The computer-based shape deformer according to claim 49,wherein said animator reparameterizes said base curve for arc length.51. The computer-based shape deformer according to claim 37, whereinsaid shapes comprise members of an outline font.
 52. The computer-basedshape deformer according to claim 37, wherein said plurality of shapescomprises a sequence of shapes.
 53. The computer-based shape deformeraccording to claim 37, wherein said plurality of shapes comprises asingle shape.
 54. The computer-based shape deformer according to claim37, wherein said set of parametric curves comprises a single parametriccurve.
 55. The computer-based shape deformer according to claim 37,wherein at least one of said parametric curves comprises a Bezier curve.56. The computer-based shape deformer according to claim 37, whereinsaid parametric surface comprises a PPR surface derived from a PPR basecurve.
 57. The computer-based shape deformer according to claim 56,wherein said parametric surface comprises a PPR surface derived from aPPR base curve and a PPR shape curve.
 58. The computer-based shapedeformer according to claim 56, wherein said parametric surfacecomprises a B-spline surface derived from a B-spline base curve.
 59. Thecomputer-based shape deformer according to claim 56, wherein saidsurface and said base curve are planar.
 60. The computer-based shapedeformer according to claim 37, further comprising a shape placer forplacing said plurality of shapes along a base curve, wherein said shapeplacer comprises a base curve provider for providing a PPR base curve,and wherein said surface provider provides said surface to be a PPRsurface such that, when said second parameter equals a predefined value,said surface unites with said base curve.
 61. The computer-based shapedeformer according to claim 60, wherein said interface interfaces with auser thereby to provide said base curve.
 62. The computer-based shapedeformer according to claim 60, further comprising a base curvereparameterizer for reparameterizing said base curve thereby to resizesaid shapes.
 63. The computer-based shape deformer according to claim62, wherein said base curve reparameterizer reparameterizes said basecurve such that the sizing of said shapes after deformation correspondsto the sizing of said shapes prior to deformation.
 64. Thecomputer-based shape deformer according claim 62, wherein said basecurve reparameterizer reparameterizes said base curve such that selectedshapes are emphasized.
 65. The computer-based shape deformer accordingto claim 60, wherein said surface provider provides said surface to be aPPR surface such that said surface unites with a predefined PPR shapecurve when said first parameter is at any constant value in theparametric domain of said surface.
 66. The computer-based shape deformeraccording to claim 37, wherein said surface comprises a threedimensional parametric surface, and wherein said shape deformer furthercomprises a 3D placer for placing said plurality of shapes on apredefined number of strips on said three dimensional surface, said 3Dplacer comprising a surface splitter for splitting said surface intosaid number of strips, an arc length measurer for determining the arclength of each of said strips, a subdivider for subdividing saidplurality of shapes into said number strips, such that each strip onsaid surface is associated with a subset of said shapes, wherein thesize of each subset is determined by the relative lengths of saidstrips, and a line placer placing each subset of shapes on saidassociated strip.
 67. The computer-based shape deformer according toclaim 66, wherein said 3D placer further comprises a shader for shadingat least one of said plurality of shapes.
 68. The computer-based shapedeformer according to claim 67, wherein shading one of said shapescomprises controlling the width of at least one of said curvescomprising said shape.
 69. The computer-based shape deformer accordingto claim 67, wherein shading one of said shapes comprises assigning aweight to said shape thereby to control a property thereof.
 70. Thecomputer-based shape deformer according to claim 69, wherein saidweighting comprises a vector thereby to provide color shading.
 71. Thecomputer-based shape deformer according to claim 67, wherein saidshading is determined by at least one of the following factors: lightintensity, light direction, viewing direction, direction of thereflected light, ambient light, diffuse light, specular light,silhouette enhancement, and distance.
 72. The computer-based shapedeformer according to claim 67, wherein said shading comprises colorshading.
 73. A computer program product in a computer-readable storagedevice, the computer program product comprising software code portionswhich when executed on a computing device deform a plurality of shapes,each said shape being a character in a font set having a font style,said deforming preserving said font style, wherein each of said shapescomprises a set of parametric curves, by performing the steps of:providing a parametric surface having a first and a second parametervarying over a parametric domain, such that each of said parametriccurves comprising said shapes lies in the parametric domain of saidparametric surface; for each of said shapes, forming a deformedcharacter shape according to said parametric surface by performing asymbolic composition between said parametric surface and each saidparametric curve thereby to generate a set of deformed parametriccurves, each one of the plurality of shapes being a shape of acharacter; and for each of said shapes, outputting said deformedcharacter shape while preserving said font style.
 74. A computer programproduct according to claim 73, wherein said product is located on aserver for download into said digital computing device via a computernetwork.
 75. A computer program product according to claim 73, whereinsaid product is located on one of a group of storage media comprising:compact disc (CD), digital versatile disc (DVD), floppy disk, hard disk,and magnetic tape.
 76. A computer program product according to claim 73,comprising further software code portions for performing the steps of:calculating the placement of a plurality of points along each curve fromthe set of deformed parametric curves comprising each of said shapes;and outputting said points.
 77. A computer program product according toclaim 76, comprising further software code portions for performing thestep of displaying plurality of deformed character shapes.
 78. Acomputer program product according to claim 76, comprising furthersoftware code portions for performing the step of providing animationeffects by generating successive frames of an image, said imagecomprising said plurality of shapes, wherein generating a framecomprises: providing a parametric surface; and, for each of said shapes,forming a deformed shape according to said parametric surface.
 79. Acomputer program product according to claim 73, wherein said shapescomprise members of an outline font.
 80. A computer program productaccording to claim 73, wherein at least one of said parametric curvescomprises a Bezier curve.
 81. A computer program product according toclaim 73, wherein said parametric surface comprises a B-spline surfacederived from a B-spline base curve.
 82. A computer program productaccording to claim 81, comprising further software code portions forperforming the step of placing said plurality of shapes along a basecurve by: providing a base curve; and, providing said surface to be apiecewise polynomial or rational (PPR) surface such that, when saidsecond parameter equals a predefined value, said surface unites withsaid base curve.
 83. A computer program product according to claim 82,comprising further software code portions for performing the step ofreparameterizing said base curve for arc length.
 84. A computer programproduct according to claim 73, wherein said parametric surface comprisesa piecewise polynomial or rational (PPR) surface and all of saidparametric curves comprise PPR curves, and wherein performing saidsymbolic composition between said surface and each of said PPR curvescomprises: converting said PPR surface into a set of polynomial orrational (PR) patches by subdividing said surface at all its internalknots; converting each of said PPR curves into a set of PR segments bysubdividing said curve at each value corresponding to an internal knotof the curve and also at each value corresponding to an internal knot ofsaid surface; and, performing a symbolic composition between each ofsaid PR patches and each PR segment within the parametric domain of saidPR patch.
 85. A computer program product according to claim 73, whereinsaid surface comprises a three dimensional parametric surface, theprogram product further comprising software code portions for performingthe step of placing said plurality of shapes on a predefined number ofstrips on said three dimensional surface by: splitting said surface intosaid number of strips; determining the arc length of each of saidstrips; subdividing said plurality of shapes into said number strips,such that each strip on said surface is associated with a subset of saidshapes, wherein the size of each subset is determined by the relativearc lengths of said strips; and placing each subset of shapes on saidassociated strip.
 86. A computer program product according to claim 85,comprising further software code portions for performing the step ofshading at least one of said plurality of shapes.